1. Field of the Invention
The present invention relates to a database management system.
2. Description of the Related Art
Currently, there are a large number of applications which are constructed based on a database (DB), thereby causing a database management system (DBMS) which is software for performing a series of processes and management related to the DB to be very important. Particularly, a process performance of the DBMS decides a performance of an application using a DB and therefore an improvement of the DBMS process performance is very important.
One of characteristics about DB is to handle a large amount of data. Therefore, a mass storage device is connected to a computer in which the DBMS is executed to store DB data into the storage system in a number of execution environments of the DBMS. Accordingly, when a process related to the DB is performed, accesses occur to the storage system and a data access performance in the storage system remarkably influences the DBMS performance. Therefore, an access optimization in the storage system is very important in a system where the DBMS is operating.
In U.S. Pat. No. 5,317,727 (literature 1), there is disclosed a technology of improving a DBMS performance by reducing redundant accesses or by data prefetching. For an improvement of the DBMS performance, an I/O access performance is improved by implementing a prefetch, determining its amount, and controlling a cache (buffer) taking into consideration an execution plan for a query, data access characteristics, a cache memory amount, I/O load and the like in a portion of executing a query from a user.
In U.S. Pat. No. 5,956,750 (literature 2), there is disclosed, in a storage system where a logical storage device for use in accessing with a computer is allocated in a physical storage device for actually storing data, a technology of improving an access performance of the storage system by dynamically changing an allocation of the logical storage device in the physical storage device. By moving a part of the data stored in the physical storage device having a high access frequency to another physical storage device by using the above dynamic relocation function, a specific physical storage device is prevented from having an increased access frequency, thereby improving a performance of the entire storage system. In addition, there is disclosed an automatic execution method of improving performance with the dynamic relocation function.
In a paper titled “Evaluation of Prefetching Mechanism Using Access Plan on Intelligent Disk” (by Mukai et al., the 11th Data Engineering Workshop (DEWS2000), Lecture No. 3B-3 of Proceedings, CD-ROM issued on July 2000; Sponsored by The Institute of Electronics, Information and Communication Engineers, Data Engineering Technical Group) (literature 3), there is discussed an improvement of a DBMS performance with sophisticating a storage system by giving an example of a DB managed by a relational database management system (RDBMS).
If a query execution plan in the RDBMS is given to a storage system as the application-level knowledge, the storage system, after having read an index for a table in the RDBMS, gets capable of determining which block having data of the table should be accessed. Therefore, total data access time can be reduced by accessing the index in a lump to grasp block groups having data of the table to be accessed by the index and effectively scheduling accesses to them.
In addition, this process is executed independently from a computer in which the DBMS is executed, by which there is no need for awaiting an instruction from the computer. Furthermore, if data is distributed and allocated to a plurality of physical storage devices, the physical storage devices can be accessed in parallel and therefore a further reduction is expected on the DBMS process execution time.
In the literature 3, the above effect is checked by a simulation. In the simulation, the above function is not actually installed in a storage system, but they issue an instruction of a prefetch from the host side. The storage used for the simulation has two SCSI ports and these two ports share data cache in the storage system. Therefore, a data prefetch is realized by accessing data to be actually processed by the DBMS at one port and reading a block to be prefetched at the other port. The block to be prefetched is determined based on access trace information.
In U.S. Pat. No. 5,887,151 (literature 4), there is disclosed a technology of a storage system capable of receiving a plurality of blocks to be prefetched as a list in a single prefetch command.
A paper titled “Informed Prefetching and Caching” (by R. H. Patterson et al., Proc. of the 15th ACM Symp. on Operating System Principles, pp. 79-95, December 1995) (literature 5) discusses a function of prefetching data into a file chache on a computer in an operating system thereof by using hints related to files to be accessed issued by an application and to an accessed area and its control scheme. Particularly, it also covers an evaluation with a program in which an existing RDBMS is modified and indicates an effectiveness of this technology to the RDBMS. In the conventional technologies, however, there are the following problems.
The technology discussed in the literature 1 is one for the DBMS and a storage system is accessed by using a relative block address in an embodiment in this literature. Among the current mass storage devices, there are some having a cache memory or a plurality of physical storage devices in a storage system and operating them as a single storage system by using a storage system controller for controlling them. While there is room for further making full use of a higher access performance by optimizing an internal control in this storage system, the technology in the literature 1 does not take into consideration this kind of optimization of the internal process of the storage system.
The technology discussed in the literature 2 does not take into consideration the operating characteristics of the DBMS. Therefore, there is a possibility of allocating data, which are accessed by the DBMS at a time, to the same physical storage device, which may cause a decrease of the access performance of the DBMS. Furthermore, the optimization of a cache control in the storage system such as a data prefetch is not considered at all.
In a portion of the literature 3 discussing a performance improvement of the DBMS by sophisticating the storage system, there is a problem of insufficient clarification on a method in which the storage system receives a query execution plan in the RDBMS as an application-level knowledge and on what kind of process need be executed and what kind of data should be used after receiving it.
As for technologies of giving information of a block to be prefetched from an outside of the storage systems mentioned in the literatures 3, and 4, there is a problem of an unclear access execution priority order with the prefetch command. In case of different prefetch commands for blocks stored in the same physical storage device arriving at the storage system, which one should be preferentially executed depends on a situation, but which block has priority over the other is not clear in the prefetch command for a block specification.
As for the technology discussed in the literature 5, an application is needed to issue a hint and therefore a program modification is required when it is applied to an existing DBMS. In general, the DBMS should be very reliable. Taking into consideration that the DBMS is a complicated program and its modification is not easy and that a program modification is a cause of decreasing reliability, this technology is not always applicable to an existing DBMS that has no such function.